# 新建修饰器
# 1、函数里面套函数
# 2、外函数将 函数名 作为参数传入
# 3、内函数根据传入的 函数名 使用传入的函数
# 4、利用注解@的方式使用

def decorator(func):
    def temp(a, b):
        print("=================fixture====================")
        z = func(a, b)
        return z

    return temp


@decorator
# 添加修饰器等价于：
# add = decorator(my_add)
# z = add(1,2)
def my_add(x, y):
    return x + y


@decorator
def my_substract(x, y):
    return x - y


@decorator
def my_multiply(x, y):
    return x * y


@decorator
def my_devide(x, y):
    return x / y


print("----------------------------------不加修饰器注解----------------------------------")
add = decorator(my_add)
print(add(2, 3))
sub = decorator(my_substract)
print(sub(1, 2))
mul = decorator(my_multiply)
print(mul(2, 3))
div = decorator(my_devide)
print(div(4, 2))

print("----------------------------------加修饰器注解----------------------------------")
# print(my_add(2, 3))
# print(my_substract(1, 2))
# print(my_multiply(2, 3))
# print(my_devide(4, 2))
